// /**
//  * 全局中间件
//  *  记录每个请求的 url 和 IP 地址
//  */
// const express = require('express')
// const app = express()
// const fs = require('fs')
// const path = require('path')

// // 声明中间件函数
// function recordMiddleware(req, res, next) {
//     // 获取 url 和 ip
//     let {url, ip} = req
//     // 将信息保存在文件中 access.log
//     fs.appendFileSync(path.resolve(__dirname, './access.log'),`${url}   ${ip} \r\n`)
//     // 调用 next
//     next()
// }

// // 使用中间件函数
// app.use(recordMiddleware)

// app.get('/home', (req, res) => {
//     res.send('home')
// })
// app.get('/admin', (req, res) => {
//     res.send('admin')  
// })
// app.get('*', (req, res) => {
//     res.send('*')
// })

// app.listen(3000, (req, res) => {
//     console.log('listening on port 3000')
// })

/**
 * 路由中间件
 *  针对 /admin /setting 的请求要求 URL 携带 code = 521 参数，如果没有携带提示 [暗号错误]
 */
const express = require('express')
const app = express()
const path = require('path')

app.get('/home', (req, res) => {
    res.send('home')
})

// 设置路由中间件
let checkCodeMiddleware = (req, res, next) =>{
    // 判断 URL 中是否 code 参数为 521
    if(req.query.code === '521'){
        next()
    }else{
        res.send('暗号错误')
    }
}

app.get('/admin', checkCodeMiddleware, (req, res) => {
    res.send('admin')  
})

app.get('/setting', checkCodeMiddleware, (req, res) => {
    res.send('setting')  
})

app.get('*', (req, res) => {
    res.send('*')
})

app.listen(3000, (req, res) => {
    console.log('listening on port 3000')
})